package com.dgut.app.service;

import com.dgut.app.param.MoneyRecordParam;
import com.dgut.app.param.RegisterParam;
import com.dgut.app.result.LoginResult;
import com.dgut.app.result.UserResult;
import com.dgut.common.entity.CollectorApplication;
import com.dgut.common.entity.UserInfo;
import com.dgut.common.entity.WxUser;
import com.dgut.common.param.UserAuthParam;
import com.dgut.common.utils.PageVO;

/**
 * 用户服务层接口
 * @author it00zyq
 */
public interface UserService {
    /**
     * 用户注册并返回TOKEN
     * @param param
     * @return
     */
    LoginResult register(RegisterParam param);

    /**
     * 用户登录并返回TOKEN
     * @param code
     * @return
     */
    LoginResult login(String code);

    /**
     * 根据token获取用户认证信息
     */
    UserResult userInfo(String token);

    /**
     * 用户认证
     */
    void userAuth(UserAuthParam param, String token);

    /**
     * 回收员资格申请
     */
    void collectorAuth(String reason, String token);

    /**
     * 回收员申请信息
     */
    CollectorApplication collectorAuthInfo(String token);

    /**
     * 用户流水记录
     */
    PageVO moneyRecord(MoneyRecordParam param, String token);

    /**
     * 用户提现
     */
    void withdraw(Integer amount, String token);
}
